home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Interfaces / PInterfaces / Connections.p < prev    next >
Encoding:
Text File  |  1994-11-11  |  11.3 KB  |  347 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Connections.p
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. }
  16.  
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Connections;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __CONNECTIONS__}
  27. {$SETC __CONNECTIONS__ := 1}
  28.  
  29. {$I+}
  30. {$SETC ConnectionsIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33.  
  34. {$IFC UNDEFINED __WINDOWS__}
  35. {$I Windows.p}
  36. {$ENDC}
  37. {    Memory.p                                                    }
  38. {        Types.p                                                    }
  39. {            ConditionalMacros.p                                    }
  40. {        MixedMode.p                                                }
  41. {    Quickdraw.p                                                    }
  42. {        QuickdrawText.p                                            }
  43. {    Events.p                                                    }
  44. {        OSUtils.p                                                }
  45. {    Controls.p                                                    }
  46. {        Menus.p                                                    }
  47.  
  48. {$IFC UNDEFINED __DIALOGS__}
  49. {$I Dialogs.p}
  50. {$ENDC}
  51. {    Errors.p                                                    }
  52. {    TextEdit.p                                                    }
  53.  
  54. {$IFC UNDEFINED __CTBUTILITIES__}
  55. {$I CTBUtilities.p}
  56. {$ENDC}
  57. {    StandardFile.p                                                }
  58. {        Files.p                                                    }
  59. {    AppleTalk.p                                                    }
  60.  
  61. {$PUSH}
  62. {$ALIGN MAC68K}
  63. {$LibExport+}
  64.  
  65. CONST
  66. {    current Connection Manager version    }
  67.     curCMVersion                = 2;
  68. {    current Connection Manager Environment Record version     }
  69.     curConnEnvRecVers            = 0;
  70. { CMErr }
  71.     cmGenericError                = -1;
  72.     cmNoErr                        = 0;
  73.     cmRejected                    = 1;
  74.     cmFailed                    = 2;
  75.     cmTimeOut                    = 3;
  76.     cmNotOpen                    = 4;
  77.     cmNotClosed                    = 5;
  78.     cmNoRequestPending            = 6;
  79.     cmNotSupported                = 7;
  80.     cmNoTools                    = 8;
  81.     cmUserCancel                = 9;
  82.     cmUnknownError                = 11;
  83.  
  84.     
  85. TYPE
  86.     CMErr = OSErr;
  87.  
  88.  
  89. CONST
  90.     cmData                        = 1 * (2**(0));
  91.     cmCntl                        = 1 * (2**(1));
  92.     cmAttn                        = 1 * (2**(2));
  93.     cmDataNoTimeout                = 1 * (2**(4));
  94.     cmCntlNoTimeout                = 1 * (2**(5));
  95.     cmAttnNoTimeout                = 1 * (2**(6));
  96.     cmDataClean                    = 1 * (2**(8));
  97.     cmCntlClean                    = 1 * (2**(9));
  98.     cmAttnClean                    = 1 * (2**(10));
  99. {        Only for CMRecFlags (not CMChannel) in the rest of this enum    }
  100.     cmNoMenus                    = 1 * (2**(16));
  101.     cmQuiet                        = 1 * (2**(17));
  102.     cmConfigChanged                = 1 * (2**(18));
  103.  
  104. { CMRecFlags and CMChannel        }
  105. {        Low word of CMRecFlags is same as CMChannel    }
  106.     
  107. TYPE
  108.     CMRecFlags = LONGINT;
  109.  
  110.     CMChannel = INTEGER;
  111.  
  112.  
  113. CONST
  114.     cmStatusOpening                = 1 * (2**(0));
  115.     cmStatusOpen                = 1 * (2**(1));
  116.     cmStatusClosing                = 1 * (2**(2));
  117.     cmStatusDataAvail            = 1 * (2**(3));
  118.     cmStatusCntlAvail            = 1 * (2**(4));
  119.     cmStatusAttnAvail            = 1 * (2**(5));
  120.     cmStatusDRPend                = 1 * (2**(6));                    { data read pending    }
  121.     cmStatusDWPend                = 1 * (2**(7));                    { data write pending    }
  122.     cmStatusCRPend                = 1 * (2**(8));                    { cntl read pending    }
  123.     cmStatusCWPend                = 1 * (2**(9));                    { cntl write pending    }
  124.     cmStatusARPend                = 1 * (2**(10));                { attn read pending    }
  125.     cmStatusAWPend                = 1 * (2**(11));                { attn write pending    }
  126.     cmStatusBreakPend            = 1 * (2**(12));
  127.     cmStatusListenPend            = 1 * (2**(13));
  128.     cmStatusIncomingCallPresent    = 1 * (2**(14));
  129.     cmStatusReserved0            = 1 * (2**(15));
  130.  
  131.     
  132. TYPE
  133.     CMStatFlags = LONGINT;
  134.  
  135.  
  136. CONST
  137.     cmDataIn                    = 0;
  138.     cmDataOut                    = 1;
  139.     cmCntlIn                    = 2;
  140.     cmCntlOut                    = 3;
  141.     cmAttnIn                    = 4;
  142.     cmAttnOut                    = 5;
  143.     cmRsrvIn                    = 6;
  144.     cmRsrvOut                    = 7;
  145.  
  146.     
  147. TYPE
  148.     CMBufFields = INTEGER;
  149.  
  150.     CMBuffers = ARRAY [0..7] OF Ptr;
  151.  
  152.     CMBufferSizes = ARRAY [0..7] OF LONGINT;
  153.  
  154.  
  155. CONST
  156.     cmSearchSevenBit            = 1 * (2**(0));
  157.  
  158.     
  159. TYPE
  160.     CMSearchFlags = INTEGER;
  161.  
  162.  
  163. CONST
  164.     cmFlagsEOM                    = 1 * (2**(0));
  165.  
  166.     
  167. TYPE
  168.     CMFlags = INTEGER;
  169.  
  170.     ConnEnvironRec = RECORD
  171.         version:                INTEGER;
  172.         baudRate:                LONGINT;
  173.         dataBits:                INTEGER;
  174.         channels:                CMChannel;
  175.         swFlowControl:            BOOLEAN;
  176.         hwFlowControl:            BOOLEAN;
  177.         flags:                    CMFlags;
  178.     END;
  179.     ConnEnvironRecPtr = ^ConnEnvironRec;
  180.  
  181.     ConnPtr = ^ConnRecord;
  182.     ConnHandle = ^ConnPtr;
  183.  
  184.     ConnectionToolDefProcPtr = ProcPtr;  { FUNCTION ConnectionToolDef(hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT; }
  185.     ConnectionSearchCallBackProcPtr = ProcPtr;  { PROCEDURE ConnectionSearchCallBack(hConn: ConnHandle; matchPtr: Ptr; refNum: LONGINT); }
  186.     ConnectionCompletionProcPtr = ProcPtr;  { PROCEDURE ConnectionCompletion(hConn: ConnHandle); }
  187.     ConnectionChooseIdleProcPtr = ProcPtr;  { PROCEDURE ConnectionChooseIdle; }
  188.     ConnectionToolDefUPP = UniversalProcPtr;
  189.     ConnectionSearchCallBackUPP = UniversalProcPtr;
  190.     ConnectionCompletionUPP = UniversalProcPtr;
  191.     ConnectionChooseIdleUPP = UniversalProcPtr;
  192.  
  193.     ConnRecord = RECORD
  194.         procID:                    INTEGER;
  195.         flags:                    CMRecFlags;
  196.         errCode:                CMErr;
  197.         refCon:                    LONGINT;
  198.         userData:                LONGINT;
  199.         defProc:                ConnectionToolDefUPP;
  200.         config:                    Ptr;
  201.         oldConfig:                Ptr;
  202.         asyncEOM:                LONGINT;
  203.         reserved1:                LONGINT;
  204.         reserved2:                LONGINT;
  205.         cmPrivate:                Ptr;
  206.         bufferArray:            CMBuffers;
  207.         bufSizes:                CMBufferSizes;
  208.         mluField:                LONGINT;
  209.         asyncCount:                CMBufferSizes;
  210.     END;
  211.  
  212. CONST
  213. { CMIOPB constants and structure }
  214.     cmIOPBQType                    = 10;
  215.     cmIOPBversion                = 0;
  216.  
  217.  
  218. TYPE
  219.     CMIOPB = RECORD
  220.         qLink:                    QElemPtr;
  221.         qType:                    INTEGER;                                { cmIOPBQType }
  222.         hConn:                    ConnHandle;
  223.         theBuffer:                Ptr;
  224.         count:                    LONGINT;
  225.         flags:                    CMFlags;
  226.         userCompletion:            ConnectionCompletionUPP;
  227.         timeout:                LONGINT;
  228.         errCode:                CMErr;
  229.         channel:                CMChannel;
  230.         asyncEOM:                LONGINT;
  231.         reserved1:                LONGINT;
  232.         reserved2:                INTEGER;
  233.         version:                INTEGER;                                { cmIOPBversion }
  234.         refCon:                    LONGINT;                                { for application }
  235.         toolData1:                LONGINT;                                { for tool }
  236.         toolData2:                LONGINT;                                { for tool }
  237.     END;
  238.     CMIOPBPtr = ^CMIOPB;
  239.  
  240. CONST
  241.     uppConnectionToolDefProcInfo = $0000FEF0; { FUNCTION (4 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param): 4 byte result; }
  242.     uppConnectionSearchCallBackProcInfo = $00000FC0; { PROCEDURE (4 byte param, 4 byte param, 4 byte param); }
  243.     uppConnectionCompletionProcInfo = $000000C0; { PROCEDURE (4 byte param); }
  244.     uppConnectionChooseIdleProcInfo = $00000000; { PROCEDURE ; }
  245.  
  246. FUNCTION CallConnectionToolDefProc(hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: ConnectionToolDefUPP): LONGINT;
  247.     {$IFC NOT GENERATINGCFM}
  248.     INLINE $205F, $4E90;
  249.     {$ENDC}
  250.  
  251. PROCEDURE CallConnectionSearchCallBackProc(hConn: ConnHandle; matchPtr: Ptr; refNum: LONGINT; userRoutine: ConnectionSearchCallBackUPP);
  252.     {$IFC NOT GENERATINGCFM}
  253.     INLINE $205F, $4E90;
  254.     {$ENDC}
  255.  
  256. PROCEDURE CallConnectionCompletionProc(hConn: ConnHandle; userRoutine: ConnectionCompletionUPP);
  257.     {$IFC NOT GENERATINGCFM}
  258.     INLINE $205F, $4E90;
  259.     {$ENDC}
  260.  
  261. PROCEDURE CallConnectionChooseIdleProc(userRoutine: ConnectionChooseIdleUPP);
  262.     {$IFC NOT GENERATINGCFM}
  263.     INLINE $205F, $4E90;
  264.     {$ENDC}
  265.  
  266. FUNCTION NewConnectionToolDefProc(userRoutine: ConnectionToolDefProcPtr): ConnectionToolDefUPP;
  267.     {$IFC NOT GENERATINGCFM }
  268.     INLINE $2E9F;
  269.     {$ENDC}
  270.  
  271. FUNCTION NewConnectionSearchCallBackProc(userRoutine: ConnectionSearchCallBackProcPtr): ConnectionSearchCallBackUPP;
  272.     {$IFC NOT GENERATINGCFM }
  273.     INLINE $2E9F;
  274.     {$ENDC}
  275.  
  276. FUNCTION NewConnectionCompletionProc(userRoutine: ConnectionCompletionProcPtr): ConnectionCompletionUPP;
  277.     {$IFC NOT GENERATINGCFM }
  278.     INLINE $2E9F;
  279.     {$ENDC}
  280.  
  281. FUNCTION NewConnectionChooseIdleProc(userRoutine: ConnectionChooseIdleProcPtr): ConnectionChooseIdleUPP;
  282.     {$IFC NOT GENERATINGCFM }
  283.     INLINE $2E9F;
  284.     {$ENDC}
  285.  
  286. FUNCTION InitCM: CMErr;
  287. FUNCTION CMGetVersion(hConn: ConnHandle): Handle;
  288. FUNCTION CMGetCMVersion: INTEGER;
  289. FUNCTION CMNew(procID: INTEGER; flags: CMRecFlags; VAR desiredSizes: CMBufferSizes; refCon: LONGINT; userData: LONGINT): ConnHandle;
  290. PROCEDURE CMDispose(hConn: ConnHandle);
  291. FUNCTION CMListen(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  292. FUNCTION CMAccept(hConn: ConnHandle; accept: BOOLEAN): CMErr;
  293. FUNCTION CMOpen(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  294. FUNCTION CMClose(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; now: BOOLEAN): CMErr;
  295. FUNCTION CMAbort(hConn: ConnHandle): CMErr;
  296. FUNCTION CMStatus(hConn: ConnHandle; VAR sizes: CMBufferSizes; VAR flags: CMStatFlags): CMErr;
  297. PROCEDURE CMIdle(hConn: ConnHandle);
  298. PROCEDURE CMReset(hConn: ConnHandle);
  299. PROCEDURE CMBreak(hConn: ConnHandle; duration: LONGINT; async: BOOLEAN; completor: ConnectionCompletionUPP);
  300. FUNCTION CMRead(hConn: ConnHandle; theBuffer: UNIV Ptr; VAR toRead: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; VAR flags: CMFlags): CMErr;
  301. FUNCTION CMWrite(hConn: ConnHandle; theBuffer: UNIV Ptr; VAR toWrite: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; flags: CMFlags): CMErr;
  302. FUNCTION CMIOKill(hConn: ConnHandle; which: INTEGER): CMErr;
  303. PROCEDURE CMActivate(hConn: ConnHandle; activate: BOOLEAN);
  304. PROCEDURE CMResume(hConn: ConnHandle; resume: BOOLEAN);
  305. FUNCTION CMMenu(hConn: ConnHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  306. FUNCTION CMValidate(hConn: ConnHandle): BOOLEAN;
  307. PROCEDURE CMDefault(VAR theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  308. FUNCTION CMSetupPreflight(procID: INTEGER; VAR magicCookie: LONGINT): Handle;
  309. FUNCTION CMSetupFilter(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theEvent: EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  310. PROCEDURE CMSetupSetup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR magicCookie: LONGINT);
  311. PROCEDURE CMSetupItem(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  312. PROCEDURE CMSetupXCleanup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  313. PROCEDURE CMSetupPostflight(procID: INTEGER);
  314. FUNCTION CMGetConfig(hConn: ConnHandle): Ptr;
  315. FUNCTION CMSetConfig(hConn: ConnHandle; thePtr: UNIV Ptr): INTEGER;
  316. FUNCTION CMIntlToEnglish(hConn: ConnHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  317. FUNCTION CMEnglishToIntl(hConn: ConnHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  318. FUNCTION CMAddSearch(hConn: ConnHandle; theString: ConstStr255Param; flags: CMSearchFlags; callBack: ConnectionSearchCallBackUPP): LONGINT;
  319. PROCEDURE CMRemoveSearch(hConn: ConnHandle; refnum: LONGINT);
  320. PROCEDURE CMClearSearch(hConn: ConnHandle);
  321. FUNCTION CMGetConnEnvirons(hConn: ConnHandle; VAR theEnvirons: ConnEnvironRec): CMErr;
  322. FUNCTION CMChoose(VAR hConn: ConnHandle; where: Point; idle: ConnectionChooseIdleUPP): INTEGER;
  323. PROCEDURE CMEvent(hConn: ConnHandle; {CONST}VAR theEvent: EventRecord);
  324. PROCEDURE CMGetToolName(procID: INTEGER; VAR name: Str255);
  325. FUNCTION CMGetProcID(name: ConstStr255Param): INTEGER;
  326. PROCEDURE CMSetRefCon(hConn: ConnHandle; refCon: LONGINT);
  327. FUNCTION CMGetRefCon(hConn: ConnHandle): LONGINT;
  328. FUNCTION CMGetUserData(hConn: ConnHandle): LONGINT;
  329. PROCEDURE CMSetUserData(hConn: ConnHandle; userData: LONGINT);
  330. PROCEDURE CMGetErrorString(hConn: ConnHandle; id: INTEGER; VAR errMsg: Str255);
  331. FUNCTION CMNewIOPB(hConn: ConnHandle; VAR theIOPB: CMIOPBPtr): CMErr;
  332. FUNCTION CMDisposeIOPB(hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  333. FUNCTION CMPBRead(hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  334. FUNCTION CMPBWrite(hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  335. FUNCTION CMPBIOKill(hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  336.  
  337. {$ALIGN RESET}
  338. {$POP}
  339.  
  340. {$SETC UsingIncludes := ConnectionsIncludes}
  341.  
  342. {$ENDC} {__CONNECTIONS__}
  343.  
  344. {$IFC NOT UsingIncludes}
  345.  END.
  346. {$ENDC}
  347.